1. Field of the Invention
The present invention is directed to a coding system for encoding or decoding data while minimizing propagation of any errors introduced after the encoding and before the decoding and while assuring certain properties of words encoded by the coding system.
2. Description of the Related Art
To minimize errors introduced during the transfer or transmission of data, and to assure certain properties of the data when in a form for conveyance, systems often encode data before it is conveyed between two points. Encoding typically involves transforming the data and introducing additional information to the data, where the additional information can be used during decoding to recover from or minimize the effect of discrepancies introduced by filtering, conveying, or otherwise manipulating the data after it has been encoded.
A coding scheme (or code) may be measured by two opposing qualities. A first quality of a coding scheme is the efficiency or rate of the code, which is the amount of input data to be encoded, in proportion to the amount of the input data plus added coding information. For example, if a code adds two coding bits to a 32-bit input word, thus producing a 34-bit codeword, then the rate of the code is 32/34. A low coding rate naturally leads to an efficient rate of conveying the input data, because less total information must be conveyed per unit of input data that is conveyed. A second quality of a coding scheme is the degree to which the added coding information facilitates recovery from or minimization of errors introduced during conveyance. There is a tension between these two coding qualities. Higher error recovery rates (desirable) generally require less efficient coding rates (undesirable). More efficient coding rates (desirable) generally lead to lower error recovery rates (undesirable). What is needed is a coding scheme with a high error recovery rate and an efficient coding rate.